/*
 * Utiles_Exportar.java
 *
 * Created on 17 de febrero de 2008, 09:42 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package helper;
import java.io.*;
import java.util.*;
/**
 *
 * @author EPS
 */

//Clase para exportar archivo de planillas electronicas
public class Utiles_Exportar {
    
    /** Creates a new instance of Utiles_Exportar */
    public Utiles_Exportar(){
        this.nombreArchivo = null;
        this.extArchivo = null;
        this.delimitador = null;
        this.datos = null;
        this.clases = null;
    }
    
    public Utiles_Exportar( String narch, String extarch, String del, ArrayList dat, ArrayList cl ) {                    
        
        this.setNombreArchivo( narch );       
        this.setExtensionArchivo( extarch );
        this.setDelimitador( del );
        this.setDatos( dat );
        this.setClases( cl );
        this.inicializaArchivo();        
    }   
 
    public Utiles_Exportar( String narch, String extarch, String del, ArrayList dat ) {                    
        System.out.println( "Nombre del archivo-->" + narch );
        this.setNombreArchivo( narch );       
        this.setExtensionArchivo( extarch );
        this.setDelimitador( del );
        this.setDatos( dat );        
        this.inicializaArchivo();        
    }
    
    public void exportarArchivoTexto( int nroEspNum ) {
        ArrayList temp =  null;
        String cad = null;
        String cadTemp = null;
        
        System.out.println( "Inicializando exportacion" );
        System.out.println( "Tama�o de los datos " + datos.size() );
        
        for( int i = 0; i < datos.size(); i++ ){
            temp = ( ArrayList ) datos.get( i );            
            for( int j = 0; j < temp.size(); j++ ){
                try{
                    cad = temp.get( j ).toString();
                }catch( Exception er ){
                    cad = "";                    
                }
                
                cadTemp = Utiles_Cadena.formatearNumero( cad );
                if( cadTemp == null ){
                    System.out.println("este la cadenaAnte:" + cad);
                    this.fs.print( cad );
                }else{                    
                    this.fs.print( Utiles_Cadena.completaEspaciosInicio( cad, nroEspNum ) );
                }
                this.fs.print( this.delimitador );
            }
            this.fs.println();
        }
        fs.flush();
        fs.close();
    }

    public void exportarArchivoTexto( int n1, int n2, int n3 ) {
        ArrayList temp =  null;
        String cad = null;
        String cadTemp = null;

        for( int i = 0; i < datos.size(); i++ ){
            temp = ( ArrayList ) datos.get( i );
            for( int j = 0; j < temp.size(); j++ ){
                try{
                    cad = temp.get( j ).toString();
                }catch( Exception er ){
                    cad = "";
                } 
                    if(j==0){
                        this.fs.print( Utiles_Cadena.completaCeros( cad, n1 ) );
                    }else
                    if(j==1){
                        this.fs.print( Utiles_Cadena.completaCeros( cad, n2 ) );
                    }else
                    if(j==3){
                        this.fs.print( Utiles_Cadena.completaCeros( cad, n3 ) );
                    }else{
                        this.fs.print( Utiles_Cadena.completaCeros( cad, 10 ) );
                    }
                
                this.fs.print( this.delimitador );
            }
            this.fs.println();
        }
        fs.flush();
        fs.close();
    }
    
    public void exportarArchivoTexto( ) {
        ArrayList temp =  null;
        String cad = null;
        String cadTemp = null;
        
        System.out.println( "Inicializando exportacion" );
        System.out.println( "Tama�o de los datos " + datos.size() );
        
        for( int i = 0; i < datos.size(); i++ ){
            temp = ( ArrayList ) datos.get( i );            
            for( int j = 0; j < temp.size(); j++ ){
                try{
                    cad = temp.get( j ).toString();
                }catch( Exception er ){
                    cad = "";                    
                }                
                this.fs.print( cad );
                
            }
            this.fs.println();
        }
        fs.flush();
        fs.close();        
    }
    
    public void exportarBanco() {
        ArrayList temp =  null;
        String cad = null;
        String cadTemp = null;
        
        System.out.println( "Inicializando exportacion" );
        System.out.println( "Tama�o de los datos " + datos.size() );
        
        for( int i = 0; i < datos.size(); i++ ){
            temp = ( ArrayList ) datos.get( i );            
            for( int j = 0; j < temp.size(); j++ ){
                try{
                    cad = temp.get( j ).toString();
                }catch( Exception er ){
                    cad = "";                    
                }                
                this.fs.print( cad );
                
            }
            this.fs.println();
        }
        fs.flush();
        fs.close();
    }
    
    
    //Escribe una cadena en el archivo de acuerdo
    public void escribeDatoArchivo( String cad, int ne ){
        try{
            this.fs.print( Utiles_Cadena.completaEspaciosInicio( cad, ne ) );
        }catch( Exception er ){
            er.printStackTrace();
        }
    }
    
    public void escribeLineaArchivo( String lin ){        
        try{
            this.fs.println( lin );
        }catch( Exception er ){
            er.printStackTrace();
        }
    }
    
    public void escribeTextoArchivo( ArrayList lineas ){
        for( int i = 0; i < lineas.size(); i++ ){
            try{
                this.fs.println( lineas.get( i ).toString() );
            }catch( Exception er ){
                er.printStackTrace();
            }
        }
    }       
    
    public void setNombreArchivo( String narch ){
        this.nombreArchivo = narch;        
    }
    
    public void setExtensionArchivo( String extarch ){        
        this.extArchivo = extarch;
    }
    
    public void setDelimitador( String del ){
        this.delimitador = del;
    }
    
    public void setDatos( ArrayList dat ){
        this.datos = dat;        
    }
    
    public void setClases( ArrayList cl ){
        this.clases = cl;
    }
    
    public void inicializaArchivo(){
        try{
            this.fs = new PrintWriter( new FileWriter( this.nombreArchivo + this.extArchivo ) );
        }catch( Exception er ){
            er.printStackTrace();
        }
    }
    
    public void finalizaArchivo(){
        try{
            this.fs.flush();
            this.fs.close();
        }catch( Exception er ){
            er.printStackTrace();
        }
    }
    
    private String nombreArchivo;   //Nombre de archivo
    private String extArchivo;      //Extension de archivo
    private String delimitador;     //Delimitador de campos
    private ArrayList datos;        //Datos a exportar
    private ArrayList clases;       //Tipos de datos a exportar   
    private PrintWriter fs = null;  //Flujo de salida al archivo
}
